package org.huangrui.spark.scala.sql

import org.apache.spark.sql.{SaveMode, SparkSession}

/**
 * @Author hr
 * @Create 2024-10-20 19:00 
 */
object SparkSQL04_Source_CSV {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("SparkSQL04_Source_CSV").master("local[*]").getOrCreate()

    // TODO CSV文件就是将数据采用逗号分隔的数据文件
    val csv = spark.read.format("csv").option("header", "true") // 指定第一行为标题行
      .option("sep", "_") // 配置分割符：\t => tsv, csv
      .load("data/user.csv")
    csv.show()

    // org.apache.spark.sql.AnalysisException : Spark-24/output already exists.
    // TODO 如果输出目的地已经存在，那么SparkSQL默认会发生错误，如果不希望发生错误，那么就需要修改配置：保存模式
    //      append : 追加
    csv.write.mode(SaveMode.Overwrite)
      .option("header", "true") // 指定第一行为标题行
      .csv("output")

    // select avg(_c2) from user

    spark.stop()
  }
}
